#include<bits/stdc++.h>
using namespace std;
class Solution {
public:
    int n=2e4+10;
    int deleteAndEarn(vector<int>& nums) {
        vector<int> ret(n);
        vector<int> dp0(n);
        auto dp1=dp0;
        dp1[0]=ret[0];
        for(int i=0;i<nums.size();i++)
            ret[nums[i]]+=nums[i];
        for(int i=1;i<n;i++)
        {
            dp1[i]=dp0[i-1]+ret[i];
            dp0[i]=max(dp0[i-1],dp1[i-1]);
        }
        return max(dp1[n-1],dp0[n-1]);
    }
};